﻿using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.Web.Mvc;
using Cnm.Mvc.Models;
using Cnm.Mvc.Models.Localization;
using Cnm.Mvc.Models.Seo;

namespace Cnm.Models.ViewModels
{
    public class PostModel : BaseEntity, ILocalizedEntity, ISlugSupported
    {
        public override int GetEntityId()
        {
            return this.Id;
        }

        public int Id { get; set; }

        [DisplayName("Tiêu đề")]
        [Required(ErrorMessage = "Bạn chưa nhập {0}")]
        public string Name { get; set; }

        [DisplayName("Chuyên mục")]
        [Required(ErrorMessage = "Bạn chưa nhập {0}")]
        public int CategoryParentId { get; set; }

        [DisplayName("Chuyên mục")]
        [Required(ErrorMessage = "Bạn chưa nhập {0}")]
        public int CategoryId { get; set; }

        [DisplayName("Vùng")]
        public int? RegionId { get; set; }

        [DisplayName("Bạn là")]
        [Required(ErrorMessage = "Bạn chưa nhập {0}")]
        public int? TitularId { get; set; }

        [DisplayName("Bạn đăng tin")]
        [Required(ErrorMessage = "Bạn chưa nhập {0}")]
        public int? PostTypeId { get; set; }

        //[Required(ErrorMessage = "Bạn chưa nhập {0}")]
        [DisplayName("Nội dung tin")]
        [AllowHtml]
        public string FullDescription { get; set; }

        [DisplayName("Cách thanh toán")]
        public int? PaymentMethodId { get; set; }

        [DisplayName("Quy trình vận chuyển & giao nhận")]
        public string ShippingProcess { get; set; }

        [DisplayName("Giá (đ)")]
        public double? Price { get; set; }

        [DisplayName("Tình trạng")]
        public int? ItemStatusId { get; set; }

        [DisplayName("Tên")]
        [Required(ErrorMessage = "Bạn chưa nhập {0}")]
        public string PosterName { get; set; }

        [Required(ErrorMessage = "Bạn chưa nhập {0}")]
        [DisplayName("E-mail")]
        [DataType(DataType.EmailAddress)]
        [RegularExpression(@"^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$", ErrorMessage = "Địa chỉ email không đúng")]
        public string PosterEmail { get; set; }

        [Required(ErrorMessage = "Bạn chưa nhập {0}")]
        [DisplayName("Số điện thoại")]
        public string PosterPhone { get; set; }

        [Required(ErrorMessage = "Bạn chưa nhập {0}")]
        [DisplayName("Địa chỉ")]
        public string PosterAddress { get; set; }

        //[Required(ErrorMessage = "Bạn chưa nhập {0}")]
        [DisplayName("Mật khẩu")]
        [DataType(DataType.Password)]
        public string PostPassword { get; set; }

        [DisplayName("Nhập lại mật khẩu")]
        [System.ComponentModel.DataAnnotations.Compare("PostPassword")]
        [DataType(DataType.Password)]
        public string PostConfirmPassword { get; set; }

        [AllowHtml]
        public string SeName { get; set; }

        //public virtual Category Category { get; set; }
        //public virtual ItemStatu ItemStatu { get; set; }
        //public virtual PaymentMethod PaymentMethod { get; set; }
        //public virtual ICollection<Post_Image> Post_Image { get; set; }
        //public virtual PostType PostType { get; set; }
        //public virtual Region Region { get; set; }
        //public virtual Titular Titular { get; set; }
    }
}
